package com.itheima.dao;

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @Author Azer
 * @LOVE,,,
 * @Date 2021/9/22 19:19
 */
public interface UserMapper {

    /**
     * 功能： 根据关键字搜索，查询用户数据
     *
     * @param keyword
     * @return
     */
    @Select("select id,name,sex,age,address,qq,email from t_user " +
            "where name=#{keyword} or sex=#{keyword} or address=#{keyword} " +
            "or qq=#{keyword} or email=#{keyword}")
    List<User> searchUserByKeywords(String keyword);

    /**
     * 删除用户  删除用户在数据库里面不可以删除，但可以对其修改，将标记是否删除的值改为1即可，对应的查询时要查询没有删除的而用户
     * 即 标记值为0
     *
     * @param id
     */
    @Update("update t_user set isdelete=1 where id=#{id}")
    int deleteUserById(int id);

    /**
     * 根据id查询用户
     *
     * @return
     */
    @Select("select * from t_user where id=#{id}")
    User findUserById(int id);

    /**
     * 修改用户
     *
     * @return
     */
    @Update("update t_user set name=#{name},sex=#{sex},age=#{age},address=#{address} where id = #{id}")
    void updateUser(User user);

    /**
     * 添加用户
     *
     * @return
     */
    @Insert("insert into t_user values(NULL ,#{name},#{sex},#{age},#{address},#{qq},#{email},0)")
    int addUser(User user);

    /**
     * （添加用户的细节处理）
     * 根据邮箱查询用户，判断用户是否已被注册
     *
     * @return
     */
    @Select("select * from t_user where email=#{email}")
    User findUserByEmail(String email);

    /**
     * 查找所有用户
     *
     * @return
     */
    @Select("select * from t_user where isdelete=0")
    List<User> findAllUser();
}
